// https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

#include <iostream>
#include <vector>
#include <stack>
using namespace std;

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return bool布尔型
     */
    bool isValid(string s) {
        stack<char> stk;
        for (char ch: s) {
            if (stk.empty()) {
                stk.push(ch);
            } else {
                if (stk.top() == '(' && ch == ')') {
                    stk.pop();
                } else if (stk.top() == '[' && ch == ']') {
                    stk.pop();
                } else if (stk.top() == '{' && ch == '}') {
                    stk.pop();
                } else {
                    stk.push(ch);
                }
            }
        }

        return stk.empty();
    }
};

/*
示例1
输入：
"["
复制
返回值：
false
复制
示例2
输入：
"[]"
复制
返回值：
true
*/